package 程序员面试金典;

import java.util.Deque;
import java.util.LinkedList;
import java.util.Stack;

public class MyQueue {
    Deque deque;
    public MyQueue() {
        deque = new LinkedList<Integer>();
    }

    /** Push element x to the back of queue. */
    public void push(int x) {
        deque.push(x);
    }

    /** Removes the element from in front of queue and returns that element. */
    public int pop() {
        return (int)deque.removeLast();
    }

    /** Get the front element. */
    public int peek() {
        return (int)deque.getLast();
    }

    /** Returns whether the queue is empty. */
    public boolean empty() {
        return deque.isEmpty();
    }
//    stack<int> s1,s2;
//    /** Initialize your data structure here. */
//    MyQueue() {
//
//    }
//
//    /** Push element x to the back of queue. */
//    void push(int x) {
//        s1.push(x);
//    }
//
//    /** Removes the element from in front of queue and returns that element. */
//    int pop() {
//        if(s2.empty()){
//            while(!s1.empty()){
//                s2.push(s1.top());
//                s1.pop();
//            }
//        }
//        int tmp = s2.top();
//        s2.pop();
//        return tmp;
//    }
//
//    /** Get the front element. */
//    int peek() {
//        if(s2.empty()){
//            while(!s1.empty()){
//                s2.push(s1.top());
//                s1.pop();
//            }
//        }
//        return s2.top();
//    }
//
//    /** Returns whether the queue is empty. */
//    bool empty() {
//        return s1.empty() && s2.empty();
//    }
}
